﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ModuloCozinha.WSsiar;

namespace ModuloCozinha
{
    public partial class Cozinha : Form
    {
        WSsiar.ServicosSIARSoapClient ws;

        public Cozinha()
        {
            InitializeComponent();
            this.atualizarListView();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ws = new WSsiar.ServicosSIARSoapClient();       
        }

        public void atualizarListView()
        {
            ServicosSIARSoapClient ws = new ServicosSIARSoapClient();
            PedidoBean[] listaDePedidos = ws.PedidoListar();
            esperaLV.Items.Clear();
            preparoLV.Items.Clear();
            if (listaDePedidos.Length != 0)
            {
                for (int i = 0; i < listaDePedidos.Length; i++)
                {
                    if (listaDePedidos[i].Status.Equals("Em Espera"))
                    {
                        int id = 0;
                        string itemPedido = "Default";
                        string owner = "Default";
                        
                        if (listaDePedidos[i].Id_Bebida != 0)
                        {
                            id = listaDePedidos[i].Id_Bebida;
                            itemPedido = ws.BebidaRecuperarDescricao(id);
                        }
                        else
                        {
                            id = listaDePedidos[i].Id_Prato;
                            itemPedido = ws.RecuperarPrato(listaDePedidos[i].Id_Prato).Nome;
                        }

                        if (listaDePedidos[i].Id_Cliente != 0)
                        {
                            id = listaDePedidos[i].Id_Cliente;
                            owner = ws.ClienteRecuperarNome(id);
                        }
                        else
                        {
                            owner = listaDePedidos[i].Num_Mesa.ToString();
                        }

                        ListViewItem item = new ListViewItem(itemPedido);
                        item.SubItems.Add(owner);
                        item.SubItems.Add(ws.RecuperarFuncionario(listaDePedidos[i].Id_Func));
                        item.SubItems.Add(listaDePedidos[i].Status);
                        item.SubItems.Add(listaDePedidos[i].Id.ToString());
                        esperaLV.Items.Add(item);
                    } 
                    else if (listaDePedidos[i].Status.Equals("Em Preparo"))
                    {
                        int id = 0;
                        string itemPedido = "Default";
                        string owner = "Default";

                        if (listaDePedidos[i].Id_Bebida != 0)
                        {
                            id = listaDePedidos[i].Id_Bebida;
                            itemPedido = ws.BebidaRecuperarDescricao(id);
                        }
                        else
                        {
                            id = listaDePedidos[i].Id_Prato;
                            itemPedido = ws.RecuperarPrato(listaDePedidos[i].Id_Prato).Nome;
                        }

                        if (listaDePedidos[i].Id_Cliente != 0)
                        {
                            id = listaDePedidos[i].Id_Cliente;
                            owner = ws.ClienteRecuperarNome(id);
                        }
                        else
                        {
                            owner = listaDePedidos[i].Num_Mesa.ToString();
                        }

                        ListViewItem item = new ListViewItem(itemPedido);
                        item.SubItems.Add(owner);
                        item.SubItems.Add(ws.RecuperarFuncionario(listaDePedidos[i].Id_Func));
                        item.SubItems.Add(listaDePedidos[i].Status);
                        item.SubItems.Add(listaDePedidos[i].Id.ToString());
                        preparoLV.Items.Add(item);
                    }
                    else if (listaDePedidos[i].Status.Equals("Finalizado"))
                    {
                        int id = 0;
                        string itemPedido = "Default";
                        string owner = "Default";

                        if (listaDePedidos[i].Id_Bebida != 0)
                        {
                            id = listaDePedidos[i].Id_Bebida;
                            itemPedido = ws.BebidaRecuperarDescricao(id);
                        }
                        else
                        {
                            id = listaDePedidos[i].Id_Prato;
                            itemPedido = ws.RecuperarPrato(listaDePedidos[i].Id_Prato).Nome;
                        }

                        if (listaDePedidos[i].Id_Cliente != 0)
                        {
                            id = listaDePedidos[i].Id_Cliente;
                            owner = ws.ClienteRecuperarNome(id);
                        }
                        else
                        {
                            owner = listaDePedidos[i].Num_Mesa.ToString();
                        }

                        ListViewItem item = new ListViewItem(itemPedido);
                        item.SubItems.Add(owner);
                        item.SubItems.Add(ws.RecuperarFuncionario(listaDePedidos[i].Id_Func));
                        item.SubItems.Add(listaDePedidos[i].Status);
                        item.SubItems.Add(listaDePedidos[i].Id.ToString());
                        finalizadosLV.Items.Add(item);
                    }
                }
            }
        }

        private void preparoLV_ItemActivate(object sender, EventArgs e)
        {
            PedidoAtualizarForm form = new PedidoAtualizarForm(
                preparoLV.FocusedItem.SubItems[0].Text,
                preparoLV.FocusedItem.SubItems[3].Text,
                preparoLV.FocusedItem.SubItems[4].Text);
            
            form.ShowDialog();
            this.atualizarListView();
            
        }

        private void esperaLV_ItemActivate(object sender, EventArgs e)
        {
            PedidoAtualizarForm form = new PedidoAtualizarForm(
                esperaLV.FocusedItem.SubItems[0].Text,
                esperaLV.FocusedItem.SubItems[3].Text,
                esperaLV.FocusedItem.SubItems[4].Text);

            form.ShowDialog();
            this.atualizarListView();
        }
    }
}
